Computing system with channel-change-based trigger feature

ABSTRACT

In one aspect, an example method includes (i) receiving, by a computing system, media content; (ii) generating, by the computing system, a fingerprint of the received media content; (iii) determining, by the computing system, that a channel-change operation was performed; (iv) responsive to determining that the channel-change operation was performed, transmitting, by the computing system, the generated fingerprint to a content identification server to identify the received media content; and (v) performing an action based on the identified media content.

RELATED DISCLOSURE

This disclosure claims priority to U.S. Provisional Patent ApplicationNo. 62/275,081, titled “Video Classifier,” filed on Jan. 5, 2016, whichis hereby incorporated by reference in its entirety.

USAGE AND TERMINOLOGY

In this disclosure, unless otherwise specified and/or unless theparticular context clearly dictates otherwise, the terms “a” or “an”mean at least one, and the term “the” means the at least one.

SUMMARY

In one aspect, an example method is disclosed. The method includes (i)receiving, by a computing system, media content; (ii) generating, by thecomputing system, a fingerprint of the received media content; (iii)determining, by the computing system, that a channel-change operationwas performed; (iv) responsive to determining that the channel-changeoperation was performed, transmitting, by the computing system, thegenerated fingerprint to a content identification server to identify thereceived media content; and (v) performing an action based on theidentified media content.

In another aspect, an example non-transitory computer-readable medium isdisclosed. The computer-readable medium has stored thereon programinstructions that upon execution by a processor, cause performance of aset of acts including (i) receiving, by a computing system, mediacontent; (ii) generating, by the computing system, a fingerprint of thereceived media content; (iii) determining, by the computing system, thata channel-change operation was performed; (iv) responsive to determiningthat the channel-change operation was performed, transmitting, by thecomputing system, the generated fingerprint to a content identificationserver to identify the received media content; and (v) performing anaction based on the identified media content.

In another aspect, an example computing system is disclosed. Thecomputing system is configured for performing a set of acts including(i) receiving, by the computing system, media content; (ii) generating,by the computing system, a fingerprint of the received media content;(iii) determining, by the computing system, that a channel-changeoperation was performed; (iv) responsive to determining that thechannel-change operation was performed, transmitting, by the computingsystem, the generated fingerprint to a content identification server toidentify the received media content; and (v) performing an action basedon the identified media content.

In another aspect, another example method is disclosed. The methodincludes (i) receiving, by a computing system, media content; (ii)generating, by the computing system, a fingerprint of the received mediacontent; (iii) determining, by the computing system, that a remotecontroller transmitted an instruction configured to cause performance ofa channel-change operation; (iv) responsive to determining that theremote controller transmitted an instruction configured to causeperformance of the channel-change operation, transmitting, by thecomputing system, the generated fingerprint to a content identificationserver to identify the received media content; and (v) performing anaction based on the identified media content.

In another aspect, another example non-transitory computer-readablemedium is disclosed. The computer-readable medium has stored thereonprogram instructions that upon execution by a processor, causeperformance of a set of acts including (i) receiving, by a computingsystem, media content; (ii) generating, by the computing system, afingerprint of the received media content; (iii) determining, by thecomputing system, that a remote controller transmitted an instructionconfigured to cause performance of a channel-change operation; (iv)responsive to determining that the remote controller transmitted aninstruction configured to cause performance of the channel-changeoperation, transmitting, by the computing system, the generatedfingerprint to a content identification server to identify the receivedmedia content; and (v) performing an action based on the identifiedmedia content.

In another aspect, another example computing system is disclosed. Thecomputing system is configured for performing a set of acts including(i) receiving, by the computing system, media content; (ii) generating,by the computing system, a fingerprint of the received media content;(iii) determining, by the computing system, that a remote controllertransmitted an instruction configured to cause performance of achannel-change operation; (iv) responsive to determining that the remotecontroller transmitted an instruction configured to cause performance ofthe channel-change operation, transmitting, by the computing system, thegenerated fingerprint to a content identification server to identify thereceived media content; and (v) performing an action based on theidentified media content.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a simplified block diagram of an example computing device.

FIG. 2 is a simplified block diagram of an example media contentdelivery and presentation system.

FIG. 3 is a simplified block diagram of an example media contentidentification system.

FIG. 4 is a flow chart of an example method.

FIG. 5 is a flow chart of another example method.

DETAILED DESCRIPTION I. Overview

Within a media content delivery and presentation system, a receiver(e.g., a cable receiver or a satellite receiver) can provide mediacontent to a media presentation device (e.g., a television), which canreceive and present the media content for an end-user.

In some instances, it can be desirable to identify the media contentthat the media presentation device is receiving and/or presenting. Amongother things, this can allow an entity such as the media presentationdevice to perform an action based on the identified media content. Forexample, based on the identified media content, the media presentationdevice can cause supplemental content (e.g., a contextually appropriateadvertisement) to be presented in conjunction with the media contentbeing presented by the media presentation device (e.g., by overlayingthe supplemental content on the presented media content).

In one example, a fingerprint-based technique can be used to identifythe media content. As such, the media presentation device can receivemedia content, and can generate a fingerprint of the received mediacontent. The media presentation device can then transmit the fingerprintto a content identification server for analysis, which can use thefingerprint to identify the media content. Based on the identified mediacontent, the content identification server can take, or cause to betaken, one or more actions, such as causing the media presentationdevice to perform the action described above.

As noted above, the media presentation device can generate and/ortransmit a fingerprint to the content identification server periodicallyor from time so that the media content can be identified. In practice,many media presentation devices can generate and/or transmitfingerprints in this manner, which collectively can strain operation ofthe content identification server. Thus, in some cases, it may bedesirable to reduce the number of fingerprints that a given mediapresentation device generates and/or transmits to the contentidentification server for analysis. However, this can potentially reducethe ability of the content identification server to accurately identifythe media content being presented on the media presentation device at agiven time.

In one aspect, the media presentation device can help address the issuesdiscussed above by using a channel-change operation as a trigger eventthat causes the media presentation device to transmit the generatedfingerprint to the content identification server. For example, in thecase where the media presentation device receives the content from thereceiver, the act of the media presentation device determining that thechannel-change operation was performed can involve the mediapresentation device determining that the receiver performed achannel-change operation.

In one example, the media presentation device can train a classifier andcan determine that the channel-change operation was performed by usingthe trained classifier. The media presentation device can do this byproviding as input to the classifier the received media content and/orrelated data (e.g., a fingerprint of the received media content). Theclassifier can thus provide as output, an indication of a position ofthe media content that corresponds to the occurrence of a channel-changeoperation.

In another example, the media presentation device can determine that thechannel-change operation was performed by determining that asynchronization handshake between the media presentation device and thereceiver was lost. Other techniques for determining that thechannel-change operation was performed are possible as well.

Responsive to the media presentation device determining that thechannel-change operation was performed, the media presentation devicecan transmit the generated fingerprint to a content identificationserver to identify the received media content. Then, the contentidentification server, the media presentation device, and/or anotherentity can perform an action, based on the identified media content.

This can help reduce the number of instances where the mediapresentation device transmits a fingerprint to the contentidentification server for analysis, which can help reduce the chance ofthe content identification server facing strained operation. This canalso generally reduce the use of network and other types of computingresources.

Also, as an alternative to, or in addition to, the media presentationdevice using a channel-change operation as a trigger event that causesthe media presentation device to transmit the generated fingerprint tothe content identification server, the media presentation device candetermine that a remote controller transmitted an instruction configuredto cause performance of a channel-change operation.

As noted above, the receiver can perform a channel change operation forvarious reasons, such as in response to receiving a channel-changeinstruction from a remote controller being operated by an end-user. Theremote controller can transmit the channel-change instruction to thereceiver in various ways, such as by emitting an infrared signal thatencodes the instruction, which the receiver can receive via an infraredreceiver, such that the receiver can decode and process the signal.

In one example, the media presentation device can also include aninfrared receiver. In this case, the act of the media presentationdevice determining that the remote controller transmitted an instructionconfigured to cause the receiver to perform a channel-change operationcan involve the media presentation device receiving, via the infraredreceiver of the media presentation device, the instruction; matching acharacteristic of the received instruction with a characteristic of areference instruction; and based on the matching, determining that theremote controller transmitted an instruction configured to cause thereceiver to perform a channel-change operation.

Then, responsive to the media presentation device determining that theremote controller transmitted an instruction configured to causeperformance of the channel-change operation, the media presentationdevice can generate a fingerprint and/or transmit the generatedfingerprint to the content identification server, and the mediapresentation device (or other entity) can perform an action based on theidentified media content as discussed above.

II. Example Architecture

A. Computing Device

FIG. 1 is a simplified block diagram of an example computing device 100.The computing device can be configured to perform and/or can perform oneor more acts and/or functions, such as those described in thisdisclosure. The computing device 100 can include various components,such as a processor 102, a data storage unit 104, a communicationinterface 106, and/or a user interface 108. Each of these components canbe connected to each other via a connection mechanism 110.

In this disclosure, the term “connection mechanism” means a mechanismthat facilitates communication between two or more components, devices,systems, or other entities. A connection mechanism can be a relativelysimple mechanism, such as a cable or system bus, or a relatively complexmechanism, such as a packet-based communication network (e.g., theInternet). In some instances, a connection mechanism can include anon-tangible medium (e.g., in the case where the connection iswireless).

The processor 102 can include a general-purpose processor (e.g., amicroprocessor) and/or a special-purpose processor (e.g., a digitalsignal processor (DSP)). The processor 102 can execute programinstructions contained in the data storage unit 104 as discussed below.

The data storage unit 104 can include one or more volatile,non-volatile, removable, and/or non-removable storage components, suchas magnetic, optical, and/or flash storage, and/or can be integrated inwhole or in part with the processor 102. Further, the data storage unit104 can take the form of a non-transitory computer-readable storagemedium, having stored thereon program instructions (e.g., compiled ornon-compiled program logic and/or machine code) that, upon execution bythe processor 102, cause the computing device 100 to perform one or moreacts and/or functions, such as those described in this disclosure. Theseprogram instructions can define and/or be part of a discrete softwareapplication. In some instances, the computing device 100 can executeprogram instructions in response to receiving an input, such as from thecommunication interface 106 and/or the user interface 108. The datastorage unit 104 can also store other types of data, such as those typesdescribed in this disclosure.

The communication interface 106 can allow the computing device 100 toconnect with and/or communicate with another entity according to one ormore protocols. In one example, the communication interface 106 can be awired interface, such as an Ethernet interface or a High-DefinitionMultimedia Interface (HDMI). In another example, the communicationinterface 106 can be a wireless interface, such as a cellular, WI-FI, orinfrared (IR) interface. In this disclosure, a connection can be adirect connection or an indirect connection, the latter being aconnection that passes through and/or traverses one or more entities,such as a router, switcher, or other network device. Likewise, in thisdisclosure, a transmission can be a direct transmission or an indirecttransmission.

The user interface 108 can include hardware and/or software componentsthat facilitate interaction between the computing device 100 and a userof the computing device 100, if applicable. As such, the user interface108 can include input components such as a keyboard, a keypad, a mouse,a touch-sensitive panel, a microphone, and/or a camera, and/or outputcomponents such as a display device (which, for example, can be combinedwith a touch-sensitive panel), a sound speaker, and/or a haptic feedbacksystem.

The computing device 100 can take various forms, such as a television, aset-top box, a workstation terminal, a desktop computer, a laptop, atablet, and/or a mobile phone.

B. Media Content Delivery and Presentation System

FIG. 2 is a simplified block diagram of an example media contentdelivery and presentation system 200. The system 200 can perform variousacts and/or functions related to the delivery and/or presentation ofmedia content (e.g., audio content and/or video content), and can beimplemented as a computing system. In this disclosure, the term“computing system” means a system that includes at least one computingdevice. In some instances, a computing system can include one or moreother computing systems.

The system 200 can include various components, such as a media contentsource 202, a media content distributor 204, a receiver 206, and/or amedia presentation device 208, each of which can be implemented as acomputing system. The system 200 can also include a connection mechanism210, which connects the media content source 202 with the media contentdistributor 204; a connection mechanism 212, which connects the mediacontent distributor 204 with the receiver 206; and a connectionmechanism 214, which connects the receiver 206 with the mediapresentation device 208. In practice, the system 200 is likely toinclude many of some or all of the example components described above.

The media content source 202 and the media content distributor 204 caneach take various forms. For example, the media content source 202 canbe a broadcaster and/or a web server, and the media content distributor204 can be a multi-channel distributor (e.g., a cable provider,satellite provider, over-the-air broadcast provider, or a webaggregator). The receiver 206 and the media presentation device 208 caneach take various forms as well. For example, the receiver can be acable receiver, a satellite receiver, an over-the-air broadcastreceiver, and/or a streaming media box, and the media presentationdevice 208 can be a television or another display device, or aloudspeaker or another audio device.

C. Media Content Identification System

FIG. 3 is a simplified block diagram of an example media contentidentification system 300. The system 300 can perform various actsand/or functions related to media content identification (sometimesreferred to as automated content recognition (ACR)), and can beimplemented as a computing system.

The system 300 can include various components, such as the mediapresentation device 208 and a content identification server 302, whichcan be implemented as a computing system. The system 300 can alsoinclude a connection mechanism 304, which connects the mediapresentation device 208 with the content identification server 302.

III. Example Operations

Referring again to FIG. 2, within the system 200, the media contentsource 202 can provide media content to the media content distributor204, which can provide the media content to the receiver, which canprovide the media content to the media presentation device 208, whichcan present the media content to an end-user.

In practice, the system 200 can include many of some or all of thecomponents described above, which can allow media content to bepresented to many end-users. Thus, in one example, the media contentsources 202 can be national broadcasters, such as ABC, NBC, CBS, FOX,HBO, and CNN, and the media content distributors 204 can be localaffiliates and/or other local content distributors in particulardesignated market areas (DMAs). Further, the receivers 206 and the mediapresentation devices 208 can be located at customer premises, such ashomes or business establishments. With these or other arrangements, themedia content sources 202 can deliver media content to the media contentdistributors 204 for distribution to the receivers 206, and the mediacontent distributors 204 can distribute the media content to thereceivers 16 on discrete channels (e.g., particular frequencies). Eachreceiver 206 can then respond to user input or one or more other triggerevents by tuning to a selected channel and transmitting to a mediapresentation device 208 the media content that is arriving on theselected channel. The media presentation device 208 can then receive andpresent the media content (e.g., by displaying or otherwise presentingthe content).

In some instances, it can be desirable to identify the media contentthat the media presentation device 208 is receiving and/or presenting.Among other things, this can allow an entity such as the mediapresentation device 208 to perform an action based on the identifiedmedia content. For example, based on the identified media content, themedia presentation device 208 can cause supplemental content (e.g., acontextually appropriate advertisement) to be presented in conjunctionwith the media content being presented by the media presentation device208 (e.g., by overlaying the supplemental content on the presented mediacontent).

In one example, a fingerprint-based technique can be used to identifythe media content. An example of this will now be described. Referringagain to FIG. 3, the media presentation device 208 can receive mediacontent, and can generate a fingerprint of the received media content.In one example, the media presentation device 208 can generate thefingerprint while the media presentation device is receiving the mediacontent (e.g., from the receiver 206) and/or while the mediapresentation device is processing the media content for presentation.The media presentation device 208 can apply any media fingerprintingprocess now known or later developed to generate a fingerprint of themedia content.

In practice, the media presentation device 208 can generate suchfingerprints as a fingerprint stream on an ongoing basis, such as on aper frame basis (e.g., on a per key-frame basis) or other basis. Themedia presentation device 208 can also transmit the fingerprint to thecontent identification server 302 for analysis. By way of example, themedia presentation device 208 can periodically or from time to timegenerate and/or transmit to the content identification server 302 afingerprint representing a latest frame, series of frames or otherportion of the media content being received and/or presented by themedia presentation device 208. In particular, the media presentationdevice 208 can generate a message carrying the latest generatedfingerprint and can transmit the message to the content recognitionserver's IP address. Such a message could implicitly or explicitlyindicate the current time, thus establishing a time at which the mediacontent at issue is being received and/or presented by the mediapresentation device 208. The content identification server 302 canthereby receive the fingerprint and time information for analysis.

Further, the content identification server 302 can compare thefingerprint of the media content being received and/or presented by themedia presentation device 208 with reference fingerprints accessible bythe content identification server 302 using any fingerprint comparisonprocess now known or later developed.

Each of the reference fingerprints can correspond with respective datathat identifies media content from which the reference fingerprint wasgenerated, and that is accessible by the content identification server302. In one example, the content identification server 302 can usemapping data to map a given reference fingerprint to respective datathat identifies the corresponding media content. The data can identifythe media content in various ways, such as by specifying a title, uniqueidentifier, or other data associated with the media content. Thus, bydetermining that there is a match between a fingerprint representingmedia content received and/or presented by the media presentation device208, and a reference fingerprint, the content identification server 302can use the data corresponding to the reference fingerprint to identifythe media content.

Based on the identified media content, the content identification server302 can take, or cause to be taken, one or more actions. For example,the content identification server 302 can take action based on theidentified media content, or the content identification server 302 cansignal to another entity, perhaps to the media presentation device 208,to cause the other entity to take action based on the identified mediacontent.

For example, the content identification server 302 can record the factthat the media presentation device 208 is presenting the identifiedmedia content as part of a content rating or analytics system to measurethe extent to which media content is being received and/or presented bymedia presentation devices. For instance, the media presentation device208 can regularly (e.g., periodically) report to the contentidentification server 302 a fingerprint of the media content that themedia presentation device 208 is receiving and/or presenting, and thecontent identification server 302 can carry out processes such as thosediscussed herein to determine media content being identified. Each timethe content identification server 302 thus identifies media contentbeing received and/or presented by the media presentation device 208,the content identification server 302 can add to a count or otherstatistic of the media content being received and/or presented. Further,these counts or other statistics can be per media presentation device(as device-specific viewing analytics), indicating the extent to whichthe media presentation device receives and/or presents the mediacontent.

As another example, the content identification server 302 canresponsively cause the media presentation device 208 to presentsupplemental content, such as an overlay advertisement as discussedabove, among other possibilities, possibly as a replacement for one ormore portions of the media content. For instance, given anidentification of the media content at issue, the content identificationserver 302 can generate or select (e.g., from a server's data storageunit) particular supplemental media content associated specifically withthe identified media content (and perhaps further based on profile data(e.g., device-specific viewing analytics) associated with the particularmedia presentation device 208) and can transmit the supplemental mediacontent to the media presentation device 208 for the media presentationdevice 208 to present in conjunction with the media content that themedia presentation device 208 is receiving from the receiver 206. Themedia presentation device 208 can thus receive the supplemental mediacontent from the content identification server 302 and present it inconjunction with the media content that the media presentation device208 is receiving from the receiver 206.

As noted above, the media presentation device 208 can generate and/ortransmit a fingerprint to the content identification server 302periodically or from time so that the media content can be identified.In practice, many media presentation devices 208 can generate and/ortransmit fingerprints in this manner, which collectively can strainoperation of the content identification server 302. Thus, in some cases,it may be desirable to reduce the number of fingerprints that a givenmedia presentation device 208 generates and/or transmits to the contentidentification server 302 for analysis. However, this can potentiallyreduce the ability of the content identification server 302 toaccurately identify the media content being presented on the mediapresentation device 208 at a given time.

To illustrate how this can be a problem, consider the followingscenario. At time T₁, the receiver 206 tunes to a first channel, andthus starts to provide first media content received on the first channelto the media presentation device 208, and the media presentation device208 receives the same. Then, five seconds later, at time T₂, thereceiver switches channels (perhaps as a result of the receiver 208receiving a channel-change instruction from a remote controller operatedby an end-user) such that it is tuned to a second channel, and thusstarts to provide second media content received on the second channel tothe media presentation device 208, and media presentation device 208receives the same. In the case where the media presentation device 208is configured to generate and transmit fingerprints to the contentidentification server 302 at a period interval of once every thirtyseconds, and the media presentation device 208 generates and transmits afingerprint at time T₁, the content identification server 302 canidentify the first media content as soon as the media presentationdevice 208 begins receiving and/or presenting the first media content.However, because the media presentation device 208 does not generate andtransmit the next fingerprint until twenty seconds later, the contentidentification server 302 cannot identify the second media content untilat least twenty-five seconds after time T₂, that is, until at leasttwenty-five seconds after the media presentation device 208 startsreceiving and/or presenting the second media content. This delay canreduce or potentially eliminate any benefit or value attained byperforming an action based on the identified media content.

In one aspect, the media presentation device 208 can help address theissues discussed above by using a channel-change operation as a triggerevent that causes the media presentation device 208 to transmit thegenerated fingerprint to the content identification server 302. A methodincorporating this feature will now be described.

To begin with, the media presentation device 208 can receive mediacontent, such as from the receiver 206, and the media presentationdevice 208 can generate a fingerprint of the received media content.

Further, the media presentation device 208 can determine that achannel-change operation was performed. In the case where the mediapresentation device 208 receives the content from the receiver 206, theact of the media presentation device 208 determining that thechannel-change operation was performed can involve the mediapresentation device 208 determining that the receiver 206 performed achannel-change operation.

The receiver 206 can perform a channel-change operation for variousreasons. For example, the receiver 206 can change from a first channelto a second channel in response to receiving a channel-changeinstruction from a remote controller being operated by an end-user(e.g., as a result of the end-user entering a channel number, pressingthe up/down channel button, or pressing a guide button, pressing somenavigation buttons, and then pressing an enter button).

To allow the media presentation device 208 to determine that thereceiver 206 performed a channel-change operation, a training system(which can be the media presentation device 208 or another entity) canemploy a machine leaning technique to train a classifier to detectpositions within media content that correspond to a channel-changeoperation. In one example, training system can train a classifier bycausing a remote controller to transmit channel-change instructions to areceiver periodically or from time to time, and then by providing asinput to the classifier, information about those events (e.g., thenumber of timing of such events), together with the media content and/orrelated data (e.g., fingerprints of the media content) output by thereceiver. As such, in one example, the classifier can be trained byproviding as input to the classifier: (i) multiple portions of samplemedia content, and (ii) for each of the multiple portions of samplemedia content, a respective indication of a position within that portionof sample media content that corresponds with an occurrence of achannel-change operation. With this information, the classifier canconfigure itself to recognize positions in media content that correspondto occurrences of channel-change operations.

The training system can apply any machine learning classificationtechnique (e.g., a technique based on neural network, support vectormachines, and/or adaptive filters) now known or later developed to traina classifier to recognize such operations.

Once the classifier is trained, in one example, the media presentationdevice 208 can determine that the channel-change operation was performedby using the trained classifier to determine that the channel-changeoperation was performed. The media presentation device 208 can do thisby providing as input to the classifier the received media contentand/or related data (e.g., a fingerprint of the received media content).The classifier can thus provide as output, an indication of a positionof the media content that corresponds to the occurrence of achannel-change operation. In practice, the classifier can output analert each time the classifier detects a channel-change operation (whichthus can implicitly indicate that a channel-change event occurred at theportion of the media content currently being received and/or processedby the media presentation device 208).

In examples where the media content is or includes video content, theclassifier can use one or more ranges of frames of video content (e.g.,spanning from a few frames to frames representing thirty seconds ofvideo content) when determining whether a channel-change operationoccurred. The classifier can also use various sampling rates, such asfifteen frames per second, in connection with analyzing video contentfor this purpose.

As noted above, the media presentation device 208 can determine that achannel-change operation was performed by using a classifier. In anotherexample, the media presentation device 208 can determine that thechannel-change operation was performed by determining that asynchronization handshake between the media presentation device 208 andthe receiver 206 was lost.

According to certain interface protocols, such as the HDMI interfaceprotocol, before the receiver 206 can transmit media content to themedia presentation device 208, the receiver 206 and the mediapresentation device 208 may need to establish a handshake. Generally,handshaking is an automated process of negotiation that dynamically setsparameters of a communication channel established between two entitiesbefore normal communication over the channel begins. As such, for thereceiver 206 to transmit media content to the media presentation device208, the two devices must first establish a handshake with each other.Once a handshake is established, the receiver 206 can transmit mediacontent to the media presentation device 208 until the something happensthat causes the handshake to be lost, in which case the devices willneed to establish another handshake before the receiver 206 can transmitadditional media content to the media presentation device 208.

In cases where the receiver 206 performs a channel-change event, thereceiver can temporarily cease to output media content, which can causethe handshake between the receiver 206 and the media presentation device208 to be lost. Thus, in one example, by determining that asynchronization handshake between the media presentation device 208 andthe receiver 206 was lost, the media presentation device 208 candetermine that the receiver 206 performed a channel-change operation.The media presentation device 208 can use any techniques now known orlater developed to determine that the handshake was lost.

Responsive to the media presentation device 208 determining that thechannel-change operation was performed, the media presentation device208 can transmit the generated fingerprint to a content identificationserver 302 to identify the received media content. Then, the contentidentification server 302, the media presentation device 208, and/oranother entity can perform an action, such as any of the actionsdescribed above, based on the identified media content.

In some examples, the media presentation device 208 can generatefingerprints periodically or from time to time and can selectivelytransmit them to the content identification server 302 responsive to themedia presentation device 208 determining that the channel-changeoperation was performed. However, in other examples, the mediapresentation device 208 can selectively generate the fingerprints andalso selectively transmit them to the content identification server 302,both responsive to the media presentation device 208 determining thatthe channel-change operation was performed.

In some instances, the media presentation device 208 can generate thefingerprint of the received media content proximate a time that themedia presentation device 208 determines that the channel-changeoperation was performed, or perhaps at a time following a predefinedtime period (e.g., the media presentation device can generate thefingerprint one second after the determination is made). Similarly, themedia presentation device 208 can transmit the generated fingerprintproximate a time that the media presentation device 208 determines thatthe channel-change operation was performed, or perhaps at a timefollowing a predefined time period.

In practice, the media presentation device 208 can continually determinethat the channel-change operation was performed, and can responsivelygenerate a fingerprint and/or transmit the generated fingerprint to thecontent identification server 302 as described above. This can helpreduce the number of instances where the media presentation device 208transmits a fingerprint to the content identification server 302 foranalysis, which can help reduce the chance of the content identificationserver 302 facing strained operation. This can also generally reduce theuse of network and other types of computing resources. Further, bygenerating and/or transmitting fingerprints proximate a time when achannel-change event occurs, the media presentation device 208 canreduce delay in identifying media content as discussed above.

In some cases, in addition to the media presentation device 208 using achannel-change operation as a trigger event that causes the mediapresentation device 208 to transmit the generated fingerprint to thecontent identification server 302, the media presentation device 208 canalso generate a fingerprint and/or transmit the generated fingerprint tothe content identification server 302 on a periodic basis or from timeto time (but perhaps less frequency than it otherwise would), serving asa hybrid approach.

Also, as an alternative to, or in addition to, the media presentationdevice 208 using a channel-change operation as a trigger event thatcauses the media presentation device 208 to transmit the generatedfingerprint to the content identification server 302, the mediapresentation device 208 can determine that a remote controllertransmitted an instruction configured to cause performance of achannel-change operation.

In the case where the media presentation device 208 receives the contentfrom the receiver 206, the act of the media presentation device 208determining that the channel-change operation was performed can involvethe media presentation device 208 determining that the remote controllertransmitted an instruction configured to cause the receiver 206 toperform a channel-change operation.

As noted above, the receiver 206 can perform a channel change operationfor various reasons, such as in response to receiving a channel-changeinstruction from a remote controller being operated by an end-user. Theremote controller can transmit the channel-change instruction to thereceiver in various ways, such as by emitting an infrared signal thatencodes the instruction, which the receiver 206 can receive via aninfrared receiver, such that the receiver 206 can decode and process thesignal.

In one example, the media presentation device 208 can also include aninfrared receiver. In this case, the act of the media presentationdevice 208 determining that the remote controller transmitted aninstruction configured to cause the receiver 206 to perform achannel-change operation can involve the media presentation device 208receiving, via the infrared receiver of the media presentation device208, the instruction; matching a characteristic of the receivedinstruction with a characteristic of a reference instruction; and basedon the matching, determining that the remote controller transmitted aninstruction configured to cause the receiver 206 to perform achannel-change operation. Thus, even though an end-user can operate aremote controller for the purposes of controlling the receiver 206, themedia presentation device 208 can also receive the instruction and caninspect it to determine if it is a channel-change instruction (e.g., asa result of the end-user entering a channel number, pressing the up/downchannel button, or pressing a guide button, pressing some navigationbuttons, and then pressing an enter button) as opposed to avolume-change instruction, for instance. In one example, the mediapresentation device 208 can maintain a set of reference instructionsthat are known to be channel-change instructions. In other examples, themedia presentation device 208 and the receiver 306 can perform similaracts to those described above in connection with an infrared-basedinterface, but in connection with another type of interface, such as aRF-based interface, instead.

Then, responsive to the media presentation device 208 determining thatthe remote controller transmitted an instruction configured to causeperformance of the channel-change operation, the media presentationdevice 208 can generate a fingerprint and/or transmit the generatedfingerprint to the content identification server 302, and the mediapresentation device 208 (or other entity) can perform an action based onthe identified media content as discussed above.

FIG. 4 is a flow chart illustrating an example method 400. At block 402,the method 400 can include receiving, by a computing system, mediacontent. At block 404, the method 400 can include generating, by thecomputing system, a fingerprint of the received media content. At block406, the method 400 can include determining, by the computing system,that a channel-change operation was performed. At block 408, the method400 can include responsive to determining that the channel-changeoperation was performed, transmitting, by the computing system, thegenerated fingerprint to a content identification server to identify thereceived media content. At block 410, the method 400 can includeperforming an action based on the identified media content.

FIG. 5 is a flow chart illustrating an example method 500. At block 502,the method 500 can include receiving, by a computing system, mediacontent. At block 504, the method 500 can include generating, by thecomputing system, a fingerprint of the received media content. At block506, the method 500 can include determining, by the computing system,that a remote controller transmitted an instruction configured to causeperformance of a channel-change operation. At block 508, the method 500can include responsive to determining that the remote controllertransmitted the instruction configured to cause performance of achannel-change operation, transmitting, by the computing system, thegenerated fingerprint to a content identification server to identify thereceived media content. At block 510, the method 500 can includeperforming an action based on the identified media content.

IV. Example Variations

Although some of the acts and/or functions described in this disclosurehave been described as being performed by a particular entity, the actsand/or functions can be performed by any entity, such as those entitiesdescribed in this disclosure. Further, although the acts and/orfunctions have been recited in a particular order, the acts and/orfunctions need not be performed in the order recited. However, in someinstances, it can be desired to perform the acts and/or functions in theorder recited. Further, each of the acts and/or functions can beperformed responsive to one or more of the other acts and/or functions.Also, not all of the acts and/or functions need to be performed toachieve one or more of the benefits provided by this disclosure, andtherefore not all of the acts and/or functions are required.

Although certain variations have been discussed in connection with oneor more example of this disclosure, these variations can also be appliedto all of the other examples of this disclosure as well.

Although select examples of this disclosure have been described,alterations and permutations of these examples will be apparent to thoseof ordinary skill in the art. Other changes, substitutions, and/oralterations are also possible without departing from the invention inits broader aspects as set forth in the following claims.

The invention claimed is:
 1. A method comprising: receiving, by a media presentation device, media content; generating, by the media presentation device, a fingerprint of the received media content; determining, by the media presentation device, that a channel-change operation was performed, wherein generated fingerprints are not used in determining that the channel-change operation was performed and wherein determining that the channel-change operation was performed comprises using, by the media presentation device, a trained classifier to determine that the channel-change operation was performed, wherein the classifier was trained by providing as input to the classifier: (i) multiple portions of sample media content, and (ii) for each of the multiple portions of sample media content, a respective indication of a position within that portion of sample media content that corresponds with an occurrence of a channel-change operation, and wherein using the trained classifier to determine that the channel-change operation was performed comprises: (i) providing as input to the trained classifier the received media content, and (ii) receiving from the trained classifier as output, an indication of a position of the received media content that corresponds to the occurrence of a channel-change operation, wherein the indication is determined based on the provided input; responsive to determining that the channel-change operation was performed, transmitting, by the media presentation device, the generated fingerprint to a content identification server to identify the received media content; and performing an action based on the identified media content, wherein performing the action comprises causing supplemental content to be presented by the media presentation device.
 2. The method of claim 1, wherein generating the fingerprint of the received media content occurs responsive to determining that the channel-change operation was performed.
 3. The method of claim 1, wherein generating the fingerprint of the received media content and transmitting the generated fingerprint to the content identification server to identify the received media content both occur proximate a time of the determining that the channel-change operation was performed.
 4. The method of claim 1, wherein the media content is video content.
 5. A non-transitory computer-readable medium having stored thereon program instructions that upon execution by a processor, cause performance of a set of acts comprising: receiving, by a media presentation device, media content; generating, by the media presentation device, a fingerprint of the received media content; determining, by the media presentation device, that a channel-change operation was performed, wherein generated fingerprints are not used in determining that the channel-change operation was performed and wherein determining that the channel-change operation was performed comprises using, by the media presentation device, a trained classifier to determine that the channel-change operation was performed, wherein the classifier was trained by providing as input to the classifier: (i) multiple portions of sample media content, and (ii) for each of the multiple portions of sample media content, a respective indication of a position within that portion of sample media content that corresponds with an occurrence of a channel-change operation, and wherein using the trained classifier to determine that the channel-change operation was performed comprises: (i) providing as input to the trained classifier the received media content, and (ii) receiving from the trained classifier as output, an indication of a position of the received media content that corresponds to the occurrence of a channel-change operation, wherein the indication is determined based on the provided input; responsive to determining that the channel-change operation was performed, transmitting, by the media presentation device, the generated fingerprint to a content identification server to identify the received media content; and performing an action based on the identified media content, wherein performing the action comprises causing supplemental content to be presented by the media presentation device.
 6. A method comprising: receiving, by a computing system, media content; generating, by the computing system, a fingerprint of the received media content; determining, by machine learning logic implemented by the computing system, that a remote controller transmitted an instruction configured to cause performance of a channel-change operation, wherein the machine learning logic is trained with sample media content so that the machine learning logic configures itself to detect an occurrence of the channel-change operation in received media content that is associated with a user changing a channel via the remote controller; responsive to determining that the remote controller transmitted the instruction configured to cause performance of the channel-change operation, transmitting, by the computing system, the generated fingerprint to a content identification server to identify the received media content; and performing an action based on identified media content, wherein performing the action comprises causing supplemental content to be presented by a media presentation device.
 7. The method of claim 6, wherein the computing system is the media presentation device, wherein the media presentation device is connected to a receiver, wherein receiving the media content comprises receiving the media content from the receiver, and wherein determining that the remote controller transmitted the instruction configured to cause performance of the channel-change operation comprises determining that the remote controller transmitted the instruction configured to cause the receiver to perform the channel-change operation.
 8. The method of claim 7, wherein determining that the remote controller transmitted the instruction configured to cause the receiver to perform a channel-change operation comprises: receiving, via an infrared receiver of the media presentation device, an instruction; matching a characteristic of the received instruction with a characteristic of a reference instruction; and based on the matching, determining that the remote controller transmitted the instruction configured to cause the receiver to perform the channel-change operation.
 9. The method of claim 6, wherein generating the fingerprint of the received media content occurs responsive to determining that the remote controller transmitted the instruction configured to cause performance of the channel-change operation.
 10. The method of claim 6, wherein generating the fingerprint of the received media content and transmitting the generated fingerprint to the content identification server to identify the received media content both occur proximate a time of the determining that the remote controller transmitted the instruction configured to cause performance of the channel-change operation.
 11. The method of claim 6, wherein the media content is video content.
 12. A non-transitory computer-readable medium having stored thereon program instructions that upon execution by a processor, cause performance of a set of acts comprising: receiving, by a computing system, media content; generating, by the computing system, a fingerprint of the received media content; determining, by machine learning logic implemented by the computing system, that a remote controller transmitted an instruction configured to cause performance of a channel-change operation, wherein the machine learning logic is trained with sample media content so that the machine learning logic configures itself to detect an occurrence of the channel-change operation in received media content that is associated with a user changing a channel via the remote controller; responsive to determining that the remote controller transmitted the instruction configured to cause performance of the channel-change operation, transmitting, by the computing system, the generated fingerprint to a content identification server to identify the received media content; and performing an action based on the identified media content, wherein performing the action comprises causing supplemental content to be presented by a media presentation device.
 13. The method of claim 1, wherein the media presentation device is connected to a receiver, wherein receiving the media content comprises receiving the media content from the receiver, and wherein determining that the channel-change operation was performed comprises determining that the receiver performed a channel-change operation.
 14. The non-transitory computer-readable medium of claim 5, wherein the media presentation device is connected to a receiver, wherein receiving the media content comprises receiving the media content from the receiver, and wherein determining that the channel-change operation was performed comprises determining that the receiver performed a channel-change operation. 